package com.algorithm;

/**
 * 斐波那契数
 */
public class FibonacciNumber {

    public static int fib(int n) {
//        if (n <= 1) {
//            return n;
//        }
//        int n0;
//        int n1;
//        int n2;
//        n0=0;
//        n1=1;
//        for (int i=2;i<=n;i++){
//            n2=n0+n1;
//            n0=n1;
//            n1=n2;
//        }
//        return n1;

//        if (n <= 1) {
//            return n;
//        }
//        int n0;
//        int n1;
//        int n2;
//        n1=0;
//        n2=1;
//        for (int i=2;i<=n;i++){
//            n0=n1;
//            n1=n2;
//            n2=n0+n1;
//        }
//        return n2;

        if (n <= 1) {
            return n;
        }
        int [] nums=new int[n+1];
        nums[0]=0;
        nums[1]=1;
        for (int i=2;i<=n;i++){
            nums[i]=nums[i-2]+nums[i-1];
        }
        return nums[n];
    }

    public static void main(String[] args) {
        int fib = fib(5);
        System.out.println(fib);
    }
}
